//
//  EmoticonTextAttachment.swift
//  EmoticonKeyBoard
//
//  Created by apple on 15/12/25.
//  Copyright © 2015年 itcast. All rights reserved.
//

import UIKit

class EmoticonTextAttachment: NSTextAttachment {
    //表情文本
    var chs: String?
    
    
    //将表情文字 转换为 属性文本(富文本)
    func emoticonTextToImageText(em: Emoticon,font: UIFont) -> NSAttributedString {
        //1.获取用户点击的模型中 包含图片路径
        let image = UIImage(contentsOfFile: em.imagePath ?? "")
        //2.将图片添加文本附件中
        //NSTextAttachment 附件类型
        let attachment = EmoticonTextAttachment()
        //2.1 设置附件的图片属性
        attachment.image = image
        attachment.chs = em.chs
        let height = font.lineHeight
        attachment.bounds = CGRect(x: 0, y: -4, width: height, height: height)
        //3.通过附件 来实例化 属性文本  不可变的属性文本  没有办法添加属性
        let imageText = NSMutableAttributedString(attributedString: NSAttributedString(attachment: attachment))
        //给属性文本添加文本属性 添加第一个的时候 可以将前面文本的属性带过来 但是自己没有设置真实的属性 第二次属性 属性文本 就没有属性
        imageText.addAttribute(NSFontAttributeName, value: font, range: NSRange(location: 0, length: 1))
        
        return imageText
    }
}
